const mysql = require('mysql2/promise')

async function testConnection () {
  console.log('🔍 测试数据库连接...')

  try {
    // 尝试连接数据库
    const connection = await mysql.createConnection({
      host: 'localhost',
      port: 3306,
      user: 'root',
      password: 'GKL9512357'
    })

    console.log('✅ 数据库连接成功')

    // 检查数据库是否存在
    const [databases] = await connection.query(
      'SHOW DATABASES LIKE "novel_platform"'
    )
    if (databases.length > 0) {
      console.log('✅ 数据库 novel_platform 存在')

      // 切换到目标数据库
      await connection.query('USE novel_platform')

      // 检查表结构
      const [tables] = await connection.query('SHOW TABLES')
      console.log(
        '📊 数据库中的表:',
        tables.map(t => Object.values(t)[0])
      )

      // 检查用户表结构
      if (tables.some(t => Object.values(t)[0] === 'users')) {
        const [userCount] = await connection.query(
          'SELECT COUNT(*) as count FROM users'
        )
        console.log('👥 用户表记录数:', userCount[0].count)
      }
    } else {
      console.log('❌ 数据库 novel_platform 不存在')
    }

    await connection.end()
    console.log('🔌 连接已关闭')
  } catch (error) {
    console.error('❌ 数据库连接失败:', error.message)
    console.error('错误代码:', error.code)

    if (error.code === 'ER_ACCESS_DENIED_ERROR') {
      console.log('💡 建议: 检查用户名和密码是否正确')
    } else if (error.code === 'ECONNREFUSED') {
      console.log('💡 建议: 检查MySQL服务是否启动')
    }
  }
}

testConnection()
